home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-06 / tpnova.zip / NOVHDR.DOC < prev    next >
Text File  |  1991-01-08  |  42KB  |  900 lines

  1. unit NovAPI;
  2.  
  3.  
  4. (**************************************************************************)
  5. (* Turbo Pascal/Novell API Interface Library                              *)
  6. (*                                                                        *)
  7. (* Copyright (c) 1991 by 'LANtic Software.                                *)
  8. (* All rights reserved.                                                   *)
  9. (*                                                                        *)
  10. (**************************************************************************)
  11.  
  12.  
  13.  
  14. interface
  15.  
  16. uses DOS;
  17.  
  18. const
  19.    USER_OBJECT              = 1;
  20.    GROUP_OBJECT             = 2;
  21.    PRINT_QUEUE_OBJECT       = 3;
  22.    FILE_SERVER_OBJECT       = 4;
  23.    JOB_SERVER               = 5;
  24.    GATEWAY_OBJECT           = 6;
  25.    PRINT_SERVER_OBJECT      = 7;
  26.    ARCHIVE_QUEUE_OBJECT     = 8;
  27.    ARCHIVE_SERVER_OBJECT    = 9;
  28.    JOB_QUEUE                = 10;
  29.    ADMINSTRATIVE_OBJECT     = 11;
  30.    REMOTE_BRIDGE_SERVER     = 36;
  31.    ADVERTISING_PRINT_SERVER = 71;
  32.    ANY_OBJECT               = -1;
  33.  
  34. {$I NOVERR}
  35.  
  36.    STATIC_BINDERY  = 0;
  37.    DYNAMIC_BINDERY = 1;
  38.  
  39.    ITEM_PROPERTY   = 0;
  40.    SET_PROPERTY    = 2;
  41.  
  42.    ANYONE_READ      = $00;
  43.    LOGGED_READ      = $01;
  44.    OBJECT_READ      = $02;
  45.    SUPERVISOR_READ  = $03;
  46.    NETWORK_READ     = $04;
  47.    ANYONE_WRITE     = $00;
  48.    LOGGED_WRITE     = $10;
  49.    OBJECT_WRITE     = $20;
  50.    SUPERVISOR_WRITE = $30;
  51.    NETWORK_WRITE    = $40;
  52.  
  53.    READ_RIGHTS     = $01;
  54.    WRITE_RIGHTS    = $02;
  55.    OPEN_RIGHTS     = $04;
  56.    CREATE_RIGHTS   = $08;
  57.    DELETE_RIGHTS   = $10;
  58.    PARENTAL_RIGHTS = $20;
  59.    SEARCH_RIGHTS   = $40;
  60.    MODIFY_RIGHTS   = $80;
  61.  
  62.    STANDARD_RIGHTS = READ_RIGHTS or OPEN_RIGHTS or SEARCH_RIGHTS;
  63.    ALL_RIGHTS      = $0FF;
  64.  
  65.    NORMAL_FILES     = $00;
  66.    HIDDEN_FILES     = $02;
  67.    SYSTEM_FILES     = $04;
  68.  
  69.    FA_READ_ONLY     = $01;    (* file attibutes *)
  70.    FA_HIDDEN        = $02;
  71.    FA_SYSTEM        = $04;
  72.    FA_EXECUTE_ONLY  = $08;
  73.    FA_SUBDIRECTORY  = $10;
  74.    FA_ARCHIVE       = $20;
  75.    FA_SHAREABLE     = $80;
  76.  
  77.    EFA_TRANSACTIONAL = $10;   (* extended file attributes *)
  78.    EFA_INDEXED       = $20;
  79.    EFA_READ_AUDIT    = $40;
  80.    EFA_WRITE_AUDIT   = $80;
  81.  
  82.    PREVENT_QUEUE_ADDS     = 01;
  83.    PREVENT_SERVER_ATTACH  = 02;
  84.    PREVENT_SERVER_SERVICE = 04;
  85.  
  86.    OPERATOR_HOLD      = $80;
  87.    USER_HOLD          = $40;
  88.    ENTRY_OPEN         = $20;
  89.    SERVICE_RESTART    = $10;
  90.    SERVICE_AUTO_START = $08;
  91.  
  92.  
  93. type
  94.    QueueTimeRecord = RECORD
  95.          Year      : 0..255;
  96.          Month     : 1..12;
  97.          Day       : 1..31;
  98.          Hour      : 0..23;
  99.          Minute    : 0..59;
  100.          Second    : 0..59;
  101.       end;
  102.    ServerTimeRecord = QueueTimeRecord;
  103.  
  104.    Days = (SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY);
  105.  
  106.    NetworkTimeRecord = RECORD
  107.          Year      : 0..255;
  108.          Month     : 1..12;
  109.          Day       : 1..31;
  110.          Hour      : 0..23;
  111.          Minute    : 0..59;
  112.          Second    : 0..59;
  113.          DayOfWeek : 0..6;
  114.       end;
  115.  
  116.    string13  = string[13];
  117.    string15  = string[15];
  118.    string16  = string[16];
  119.    string27  = string[27];
  120.    string47  = string[47];
  121.    string48  = string[48];
  122.    string55  = string[55];
  123.    string60  = string[60];
  124.    string63  = string[63];
  125.    string64  = string[64];
  126.    string79  = string[79];
  127.    string80  = string[80];
  128.    string99  = string[99];
  129.    string100 = string[100];
  130.    string126 = string[126];
  131.    string127 = string[127];
  132.  
  133.    Array32    = array[1..32] of byte;
  134.  
  135.    Array32Ptr = ^Array32;
  136.  
  137.    ServerName = array[1..48] of char;
  138.  
  139.    NameTable = array[1..8] of ServerName;
  140.  
  141.    NameTablePtr = ^NameTable;
  142.  
  143.    LPTNames = (LPT1,LPT2,LPT3);
  144.  
  145.    DownServerCommands = (CONDITIONAL,FOURCE_IT);
  146.  
  147.    WhichJobs = (THIS_JOB,ALL_JOBS);
  148.  
  149.    BroadcastModes = (STORE_DISPLAY,REJECT_DISPLAY,REJECT_IGNORE,STORE_IGNORE);
  150.  
  151.    LockModes = (NETWARE46,ADVANCED_NETWARE);
  152.  
  153.    LockDirectives = (EXCLUSIVE,SHAREABLE_READ_ONLY);
  154.  
  155.    LogModes = (LOG_ONLY,LOG_AND_LOCK);
  156.  
  157.    LogicalLockDirectives = (LOG_LOCK,EXCLUSIVE_LOCK,dummy,SHARABLE_READ_ONLY_LOCK);
  158.  
  159.    EndOfJobStatus = (DISABLE_EOJ,ENABLE_EOJ);
  160.  
  161.    ErrorModes = (NETWARE_CRITICAL,EXTENDED_ALL,EXTENDED_CRITICAL);
  162.  
  163.    CommentTypes = (UNKNOWN,CONNECT_TIME,STORAGE,LOG_IN,LOG_OUT,
  164.                    ACC_LOCKED,TIME_MODIFIED,AUDIT_NOTE);
  165.  
  166.    TrusteeIDArray     = array[1..5] of longint;
  167.    TrusteeRightsArray = array[1..5] of byte;
  168.  
  169.    NetworkAddress = array[1..4] of byte;
  170.    NodeAddress    = array[1..6] of byte;
  171.    SocketAddress  = word;
  172.  
  173.    InternetworkAddress = RECORD
  174.          NetworkNumber      : NetworkAddress;
  175.          PhysicalNodeNumber : NodeAddress;
  176.          SocketNumber       : SocketAddress;
  177.       end;
  178.  
  179.    ConnectionEntry = RECORD
  180.          InUse              : boolean;
  181.          ConnectionID       : byte;
  182.          ServerAddress      : InternetworkAddress;
  183.          ReceiveTimeOut     : word;
  184.          RouterPhysicalNode : NodeAddress;
  185.          SequenceNumber     : byte;
  186.          ConnectionNumber   : byte;
  187.          ConnectionOK       : byte;
  188.          MaximumTimeOut     : word;
  189.          Filler             : array[1..5] of byte;
  190.       end;
  191.  
  192.    ConnectionTable = array[1..8] of ConnectionEntry;
  193.    ConnectionTablePointer = ^ConnectionTable;
  194.  
  195.    DriveHandleTable = array[1..32] of byte;
  196.    DriveHandleTablePtr = ^DriveHandleTable;
  197.  
  198.    DriveConnectionTable = array[1..32] of byte;
  199.    DriveConnectionTablePtr = ^DriveConnectionTable;
  200.  
  201.    DriveFlagTable = array[1..32] of byte;
  202.    DriveFlagTablePtr = ^DriveFlagTable;
  203.  
  204.    FormArray = array[1..22] of char;
  205.    BannerArray = array[1..13] of char;
  206.    FileArray = array[1..14] of char;
  207.    DirArray = array[1..80] of char;
  208.    DescripArray = array[1..50] of char;
  209.  
  210.    NetwarePrintQueueHeaderType = RECORD
  211.          TabSize      : word;
  212.          NumberCopies : word;
  213.          Unknown      : byte;
  214.          PrintFlags   : byte;   (* >>   bit 80 = Use Banner, 40 = Use tabs  *)
  215.          PageWidth    : word;   (*          08 = FF off,     04 = ????      *)
  216.          PageLength   : word;
  217.          FormName     : FormArray;
  218.          BannerPhrase : BannerArray;
  219.          BannerFile   : BannerArray;
  220.          FileName     : FileArray;
  221.          NetworkPath  : DirArray;
  222.       end;
  223.  
  224.    JobEntryRecord = RECORD
  225.          ClientStation        : byte;
  226.          ClientTask           : byte;
  227.          ClientIDNumber       : longint;
  228.          TargetServerIDNumber : longint;
  229.          TargetExecutionTime  : QueueTimeRecord;
  230.          JobEntryTime         : QueueTimeRecord;
  231.          JobNumber            : word;
  232.          JobType              : word;
  233.          JobPosition          : byte;
  234.          JobControlFlags      : byte;
  235.          JobFileName          : array[1..14] of char;
  236.          JobFileHandle        : array[1..6] of byte;
  237.          ServerStation        : byte;
  238.          ServerTask           : byte;
  239.          ServerIDNumber       : longint;
  240.          TextJobDescription   : DescripArray;
  241.          ClientRecordArea     : array[1..152] of byte;
  242.       end;
  243.  
  244.    JobArray = array[1..250] of word;
  245.  
  246.    CaptureFlags = RECORD
  247.          Status               : byte;
  248.          PrintFlags           : byte;
  249.          TabSize              : byte;
  250.          ServerPrinter        : byte;
  251.          NumberOfCopies       : byte;
  252.          FormType             : byte;
  253.          reserved1            : byte;
  254.          BannerText           : BannerArray;
  255.          reserved2            : byte;
  256.          LocalLPTDevice       : LPTNames;
  257.          FlushTimeOutCount    : word;
  258.          FlushOnDeviceClose   : byte;
  259.          MaxLines             : word;
  260.          MaxChars             : word;
  261.          FormName             : BannerArray
  262.       end;
  263.  
  264.    PrintFlagInformation = RECORD
  265.          CaptureInfo                : CaptureFlags;
  266.          LPTCaptureFlagSet          : boolean;
  267.          FileCaptureFlagSet         : boolean;
  268.          TimingOutFlagSet           : boolean;
  269.          PrinterSetupString         : pointer;
  270.          PrinterResetString         : pointer;
  271.          QueuingServerConnectionNbr : byte;
  272.          CaptureInProgress          : boolean;
  273.          PrintQueueFlagSet          : boolean;
  274.          PrintJobIsValid            : boolean;
  275.          PrintQueueObjectID         : longint;
  276.          PrintJobNumber             : word;
  277.       end;
  278.  
  279.    IDList = array[1..25] of longint;
  280.  
  281.    StationList = array[1..25] of byte;
  282.  
  283.    ServerStatusType = RECORD
  284.          JobPrice     : longint;
  285.          Description  : array[1..60] of byte;
  286.       end;
  287.  
  288.    DynamicMemoryRec = RECORD
  289.          TotalDynamicSpace       : longint;
  290.          MaxUsedDynamicSpace     : longint;
  291.          CurrentUsedDynamicSpace : longint;
  292.       end;
  293.  
  294.    ServerMiscInformation = RECORD
  295.          SystemElapsedTime            : longint;
  296.          ProcessorType                : byte;
  297.          reserved                     : byte;
  298.          NumberOfServiceProcesses     : byte;
  299.          ServerUtilizationPercentage  : byte;
  300.          ConfiguredMaxBinderyObjects  : word;
  301.          ActualMaxBinderyObjects      : word;
  302.          CurrentUsedBinderyObjects    : word;
  303.          TotalServerMemory            : word;
  304.          WastedServerMemory           : word;
  305.          DynamicMemoryRecs            : word;
  306.          DynamicMemory                : array[1..3] of DynamicMemoryRec;
  307.       end;
  308.  
  309.    ServerLANIOStatistics = RECORD
  310.          SystemElapsedTime                     : longint;
  311.          ConfiguredMaxRoutingBuffers           : word;
  312.          ActualMaxUsedRoutingBuffers           : word;
  313.          CurrentlyUsedRoutingBuffers           : word;
  314.          TotalFileServicePackets               : longint;
  315.          FileServicePacketsBuffered            : word;
  316.          InvalidConnectionPackets              : word;
  317.          BadLogicalConnectionNumber            : word;
  318.          PacketsReceivedDuringProcessing       : word;
  319.          ReprocessedRequests                   : word;
  320.          BadSequenceNumberPackets              : word;
  321.          DuplicateRepliesSent                  : word;
  322.          AcknowledgesSent                      : word;
  323.          PacketsWithBadRequestType             : word;
  324.          AttachDuringProcessing                : word;
  325.          AttachWhileProcessingAttach           : word;
  326.          ForgedDetachRequests                  : word;
  327.          DetachForBadConnectionNumber          : word;
  328.          DetachDuringProcessing                : word;
  329.          RepliesCanceled                       : word;
  330.          PacketsDiscardedByHopCount            : word;
  331.          PacketsDiscardedUnknownNet            : word;
  332.          IncomingPacketDiscardedNoDGroupBuffer : word;
  333.          OutgoingPacketDiscardedNoBuffer       : word;
  334.          IPXnotMyNetwork                       : word;
  335.          NETBIOSbroadcastWasPropagated         : longint;
  336.          TotalOtherPackets                     : longint;
  337.          TotalRoutedPackets                    : longint;
  338.       end;
  339.  
  340.    FileSystemStatistics = RECORD
  341.          SystemElapsedTime                     : longint;
  342.          ConfiguredMaxOpenFiles                : word;
  343.          ActualMaxOpenFiles                    : word;
  344.          CurrentOpenFiles                      : word;
  345.          TotalFilesOpened                      : longint;
  346.          TotalReadRequests                     : longint;
  347.          TotalWriteRequests                    : longint;
  348.          CurrentChangedFATS                    : word;
  349.          TotalChangedFATS                      : word;
  350.          FATWriteErrors                        : word;
  351.          FatalFATWRiteErrors                   : word;
  352.          FATScanErrors                         : word;
  353.          ActualMaxIndexedFiles                 : word;
  354.          ActiveIndexedFiles                    : word;
  355.          AttachedIndexedFiles                  : word;
  356.          AvailableIndexedFiles                 : word;
  357.       end;
  358.  
  359.    FileServerInformation = RECORD
  360.          ServerName                 : string47;
  361.          NetWareVersion             : byte;
  362.          NetWareSubVersion          : byte;
  363.          ConnectionsSupported       : word;
  364.          ConnectionsInUse           : word;
  365.          MaxConnectedVolumes        : word;
  366.          OSRevisionNumber           : byte;
  367.          SFTLevel                   : byte;
  368.          TTSLevel                   : byte;
  369.          PeakConnectionsUsed        : word;
  370.          AccountingVersion          : byte;
  371.          VAPVersion                 : byte;
  372.          QueuingVersion             : byte;
  373.          PrintServerVersion         : byte;
  374.          VirtualConsoleVersion      : byte;
  375.          SecurityRestrictionsLevel  : byte;
  376.          InternetworkBridgeVersion  : byte;
  377.          Reserved                   : array[1..60] of byte;
  378.       end;
  379.  
  380.    ChannelSyncType = (AVAILABLE,               x1,
  381.                       NETWARE_NONE_WAITING,    x2,
  382.                       NETWARE_WAITING,         x3,
  383.                       OTHER_NONE_WAITING,      x4,
  384.                       OTHER_NETWARE_WAITING,   x5,
  385.                       RELEASED_NETWARE_WAITING);
  386.  
  387.    DiskChannelStatistics = RECORD
  388.          SystemElapsedTime                     : longint;
  389.          ChannelState                          : integer;
  390.          ChannelSynchronizationState           : ChannelSyncType;
  391.          spacer                                : byte;
  392.          DriverType                            : byte;
  393.          DriverMajorVersion                    : byte;
  394.          DriverMinorVersion                    : byte;
  395.          DriverDescription                     : string64;
  396.          IOAddressesUsed                       : array[1..4] of word;
  397.          SharedMemoryAddresses                 : array[1..4] of word;
  398.          Interrupt1Used                        : boolean;
  399.          Interrupt1                            : byte;
  400.          Interrupt2Used                        : boolean;
  401.          Interrupt2                            : byte;
  402.          DMAChannel1Used                       : boolean;
  403.          DMAChannel1                           : byte;
  404.          DMAChannel2Used                       : boolean;
  405.          DMAChannel2                           : byte;
  406.          ConfigurationDescription              : string79;
  407.       end;
  408.  
  409.    DiskCacheStatistics = RECORD
  410.          SystemElapsedTime                : longint;
  411.          BufferCount                      : integer;
  412.          BufferSize                       : integer;
  413.          DirtyBuffers                     : integer;
  414.          ReadRequests                     : longint;
  415.          WriteRequests                    : longint;
  416.          Hits                             : longint;
  417.          Misses                           : longint;
  418.          PhysicalReadRequests             : longint;
  419.          PhysicalWriteRequests            : longint;
  420.          PhysicalReadErrors               : integer;
  421.          PhysicalWriteErrors              : integer;
  422.          GetRequests                      : longint;
  423.          FullWriteRequests                : longint;
  424.          PartialWriteRequests             : longint;
  425.          BackgroundDirtyWrites            : longint;
  426.          BackgroundAgedWrites             : longint;
  427.          TotalWrites                      : longint;
  428.          Allocations                      : longint;
  429.          ThrashingCount                   : integer;
  430.          LRUBlockWasDirty                 : integer;
  431.          ReadBeyondWrite                  : integer;
  432.          FragmentedWriteOccurred          : integer;
  433.          HitOnUnavailablleBlock           : integer;
  434.          BlockScrapped                    : integer;
  435.       end;
  436.  
  437.    VolumeInformation = RECORD
  438.          SectorsPerBlock         : word;
  439.          TotalBlocks             : word;
  440.          AvailableBlocks         : word;
  441.          TotalDirectorySlots     : word;
  442.          AvailableDirectorySlots : word;
  443.          VolumeName              : string15;
  444.          RemovableVolume         : boolean;
  445.       end;
  446.  
  447.    WorkstationEnvironment = RECORD
  448.          WorkstationOperatingSystem   : byte;
  449.          MajorNetWareShellVersion     : byte;
  450.          MinorNetWareShellVersion     : byte;
  451.          ShellRevisionNumber          : byte;
  452.          Environment                  : array[1..40] of char;
  453.       end;
  454.  
  455.    SemaphoreInfo = RECORD
  456.          OpenCount      : word;
  457.          Value          : byte;
  458.          TaskNumber     : byte;
  459.          Name           : string[127];
  460.       end;
  461.  
  462.    SemaphoreInfoArray = array[1..5] of SemaphoreInfo;
  463.  
  464.    DriveMapArray = array[1..32] of byte;
  465.    ServerDriveMappingTable = RECORD
  466.          SystemElapsedTime    : longint;
  467.          SFTLevel             : byte;
  468.          LogicalDriveCount    : byte;
  469.          PhysicalDriveCount   : byte;
  470.          DiskChannelTable     : array[1..5] of byte;
  471.          PendingIOCommands    : word;
  472.          DriveMappingTable    : DriveMapArray;
  473.          DriveMirrorTable     : DriveMapArray;
  474.          DeadMirrorTable      : DriveMapArray;
  475.          RemirroredDrive      : byte;
  476.          reserved             : byte;
  477.          RemirroredBlock      : longint;
  478.          SFTErrorTable        : array[1..60] of byte;
  479.       end;
  480.  
  481.    RemainingSpaceRecord = RECORD
  482.          SystemElapsedTime    : longint;
  483.          ObjectID             : longint;
  484.          UnusedDiskBlocks     : longint;
  485.          RestrictionsEnforced : boolean;
  486.       end;
  487.  
  488.    PhysicalVolumeInformation = RECORD
  489.          SystemElapsedTime             : longint;
  490.          VolumeNumber                  : byte;
  491.          LogicalDriveNumber            : byte;
  492.          SectorsPerBlock               : word;
  493.          StartingBlockNumber           : longint;
  494.          TotalBlocks                   : word;
  495.          AvailableBlocks               : word;
  496.          TotalDirectorySlots           : word;
  497.          AvailableDirectorySlots       : word;
  498.          ActualMaxUsedDirectoryEntries : word;
  499.          IsHashing                     : boolean;
  500.          IsCaching                     : boolean;
  501.          IsRemovable                   : boolean;
  502.          IsMounted                     : boolean;
  503.          Name                          : string15;
  504.       end;
  505.  
  506.    PhysicalDiskStatistics = RECORD
  507.          SystemElapsedTime             : longint;
  508.          PhysicalDiskChannel           : byte;
  509.          DriveRemovable                : boolean;
  510.          DriveType                     : byte;
  511.          ControllerDriveNumber         : byte;
  512.          ControllerNumber              : byte;
  513.          ControllerType                : byte;
  514.          DriveSize                     : longint;
  515.          DriveCylinders                : word;
  516.          DriveHeads                    : byte;
  517.          SectorsPerTrack               : byte;
  518.          DriveDefinitionString         : string63;
  519.          IOErrorCount                  : integer;
  520.          HotFixTableStart              : longint;
  521.          HotFixTableSize               : integer;
  522.          HotFixBlocksAvailable         : integer;
  523.          HotFixDisabled                : boolean;
  524.       end;
  525.  
  526.    AccountHoldServerRec = RECORD
  527.          ServerID      : longint;
  528.          Amount        : longint;
  529.       end;
  530.  
  531.    AccountHoldServerArray = array[1..16] of AccountHoldServerRec;
  532.  
  533.    SemaphoreInformation = RECORD
  534.          LogicalConnectionNumber : integer;
  535.          TaskNumber              : byte;
  536.       end;
  537.    SemaphoreInformationRecords = array[1..168] of SemaphoreInformation;
  538.  
  539.  
  540. var
  541.    NetResult     : integer;
  542.  
  543. procedure AbortServiceQueueJob(QueueID : longint; JobNumber : integer);
  544. procedure AddObjectToSet(WhichObject : string47; WhatType : integer;
  545.                          WhichProperty : string15;
  546.                          NewMemberName : string47; NewMemberType : integer);
  547. procedure AddTrusteeToDirectory(WhichObjectID : longint;
  548.                                 DirectoryHandle : integer; Directory : string;
  549.                                 RightsMask : byte);
  550. procedure AllocPermanentDirectoryHandle(CurrentHandle : byte;
  551.                                         Directory : string; DriveLetter : char;
  552.                                         var NewHandle, EffectiveRights : byte);
  553. procedure AllocSpecialTemporaryDirectoryHandle(CurrentHandle : byte;
  554.                                         Directory : string; DriveLetter : char;
  555.                                         var NewHandle, EffectiveRights : byte);
  556. procedure AllocTemporaryDirectoryHandle(CurrentHandle : byte;
  557.                                         Directory : string; DriveLetter : char;
  558.                                         var NewHandle, EffectiveRights : byte);
  559. procedure AttachServerToQueue(QueueID : longint);
  560. procedure AttachToFileServer(ConnectionID : byte);
  561. procedure BroadcastToConsole(Message : string60);
  562. procedure CancelLPTCapture;
  563. procedure CancelSpecificCapture(Device : LPTNames);
  564. procedure ChangeJobQueueEntry(QueueID : longint;
  565.                               var Job : JobEntryRecord);
  566. procedure ChangeJobQueuePosition(QueueID : longint; JobNumber : integer;
  567.                                  NewPosition : byte);
  568. procedure ChangeObjectPassword(WhichObject : string47; WhatType : integer;
  569.                                OldPassword, NewPassword : string127);
  570. procedure ChangeObjectSecurity(WhichObject : string47; WhatType : integer;
  571.                                NewSecurity : byte);
  572. procedure ChangePropertySecurity(WhichObject : string47; WhatType : integer;
  573.                                  WhichProperty : string15; NewSecurity : byte);
  574. procedure ChangeServersRightsToClientsRights(QueueID : longint; JobNumber : integer);
  575. procedure CheckPipeStatus(ConnectionList : string100;
  576.                           var ResultList : string100);
  577. procedure ClearConnectionNumber(LogicalConnectionNumber : byte);
  578. procedure ClearFile(FileName : string);
  579. procedure ClearFileSet;
  580. procedure ClearLogicalRecord(LogicalRecordName : string99);
  581. procedure ClearLogicalRecordSet;
  582. procedure ClearPhysicalRecord(FileHandle : integer;
  583.                               RecordOffset, RecordLength : longint);
  584. procedure ClearPhysicalRecordSet;
  585. procedure CloseAndStartQueueJob(QueueID : longint; JobNumber : integer);
  586. procedure CloseBindery;
  587. procedure CloseMessagePipe(ConnectionList : string100;
  588.                           var ResultList : string100);
  589. procedure CloseSemaphore(SemaphoreHandle : longint);
  590. function  ConnectionNumber : integer;
  591. procedure CreateDirectory(NewDirectory : string; NewDirectoryHandle : byte;
  592.                           MaximumRights : byte);
  593. procedure CreateObject(NewObject : string47; NewType : integer;
  594.                        ObjectFlag,ObjectSecurity : byte);
  595. procedure CreateProperty(WhichObject : string47; WhatType : integer;
  596.                          NewProperty : string15; NewFlags,NewSecurity : byte);
  597. procedure CreateQueue(QueueName,QueuePath : string; QueueBase : byte;
  598.                       var NewQueueID : longint);
  599. procedure CreateQueueJob(QueueID : longint; var Job : JobEntryRecord);
  600. procedure DeallocateDirectoryHandle(DirectoryHandle : byte);
  601. function  DefaultConnectionID : integer;
  602. function  DefaultLocalPrinter : LPTNames;
  603. procedure DeleteDirectory(Directory : string; DirectoryHandle : byte);
  604. procedure DeleteObject(WhichObject : string47; WhatType : integer);
  605. procedure DeleteObjectFromSet(WhichObject : string47; WhatType : integer;
  606.                               WhichProperty : string15;
  607.                               MemberName : string47; MemberType : integer);
  608. procedure DeleteProperty(WhichObject : string47; WhatType : integer;
  609.                          NewProperty : string15);
  610. procedure DeleteTrusteeFromDirectory(WhichObjectID : longint;
  611.                                      DirectoryHandle : integer;
  612.                                      Directory : string);
  613. procedure DestroyQueue(QueueID : longint);
  614. procedure DetachFromFileServer(ConnectionID : byte);
  615. procedure DetachServerFromQueue(QueueID : longint);
  616. procedure DisableFileServerLogin;
  617. procedure DisableTransactionTracking;
  618. procedure DownFileServer(OpCode : DownServerCommands);
  619. procedure EnableFileServerLogin;
  620. procedure EnableTransactionTracking;
  621. procedure EndLPTCapture;
  622. procedure EndOfJob(OpCode : WhichJobs);
  623. procedure EndSpecificCapture(Device : LPTNames);
  624. procedure EnterLoginArea(NumberOfLocalDrives : byte;
  625.                          LoginSubdirectory : string);
  626. procedure ExamineSemaphore(SemaphoreHandle : longint;
  627.                            var SemaphoreValue : integer;
  628.                            var OpenCount      : integer);
  629. procedure FileServerFileCopy(SourceHandle,DestinationHandle : word;
  630.                             SourceOffset,DestinationOffset : longint;
  631.                             BytesToCopy : longint;
  632.                             var BytesCopied : longint);
  633. function  FileServerLoginEnabled : boolean;
  634. procedure FinishServiceQueueJob(QueueID : longint; JobNumber : integer;
  635.                                 Charge : longint);
  636. procedure FlushLPTCapture;
  637. procedure FlushSpecificCapture(Device : LPTNames);
  638. procedure GetAccountStatus(WhichObject : string47; WhatType : integer;
  639.                            var AccountBalance, CreditLimit  : longint;
  640.                            var ServerList     : AccountHoldServerArray);
  641. procedure GetBannerUserName(var BannerUserName : BannerArray);
  642. procedure GetBinderyAccessLevel(var SecurityAccessLevel : byte);
  643. procedure GetBroadcastMessage(var BroadcastMessage : string55);
  644. procedure GetBroadcastMode(var Mode : BroadcastModes);
  645. procedure GetConnectionIDTable(var ShellConnectionTable : ConnectionTablePointer);
  646. procedure GetConnectionInformation(WhichConnection : integer;
  647.                                    var ObjectID    : longint;
  648.                                    var ObjectType  : integer;
  649.                                    var ObjectName  : string47;
  650.                                    var ObjectLogin : NetworkTimeRecord);
  651. procedure GetConnectionsSemaphores(ConnectionNumber : integer;
  652.                                    var LastSeen : integer;
  653.                                    var NumberRecords : byte;
  654.                                    var InfoRec : SemaphoreInfoArray);
  655. procedure GetDefaultPrintJobFlags(var Flags : PrintFlagInformation);
  656. procedure GetDirectoryHandle(Drive : char;
  657.                              var DirectoryHandle, StatusFlag : byte);
  658. procedure GetDirectoryPath(DirectoryHandle : byte;
  659.                            var Directory : string);
  660. procedure GetDiskCacheStatistics(var InfoRec : DiskCacheStatistics);
  661. procedure GetDiskChannelStatistics(ChannelNbr : byte;
  662.                                    var InfoRec : DiskChannelStatistics);
  663. procedure GetDiskUtilization(WhichObjectID : longint; WhatVolume : byte;
  664.                          var UsedDirectories,UsedFiles,UsedBlocks : integer);
  665. procedure GetDriveConnectionIDTable(var DrvConnectionTable : DriveConnectionTablePtr);
  666. procedure GetDriveFlagTable(var DrvFlagTable : DriveFlagTablePtr);
  667. procedure GetDriveHandleTable(var DrvHandleTable : DriveHandleTablePtr);
  668. procedure GetDriveMappingTable(var InfoRec : ServerDriveMappingTable);
  669. procedure GetEffectiveDirectoryRights(Directory : string; DirHandle : byte;
  670.                                       var EffectiveRights : byte);
  671. procedure GetExtendedFileAttributes(FileName : string; var ExtendedAttributes : byte);
  672. procedure GetFileServerDateAndTime(var NetworkTime : NetworkTimeRecord);
  673. procedure GetFileServerDescriptionStrings(var CompanyName,Revision,RevisionDate,Copyright : string);
  674. procedure GetFileServerInformation(var InfoRec : FileServerInformation);
  675. procedure GetFileServerNameTable(var ServerNameTable : NameTablePtr);
  676. procedure GetFileSystemStatistics(var InfoRec : FileSystemStatistics);
  677. procedure GetInternetAddress(ConnectionNumber : integer;
  678.                              var ConnectionAddress : InternetworkAddress);
  679. procedure GetJobsQueueEntryFileSize(QueueID : longint;
  680.                                     JobNumber : integer;
  681.                                     var FileSize : longint);
  682. procedure GetLANDriversConfiguationInformation(WhichLAN : byte;
  683.                                            var Address     : NetworkAddress;
  684.                                            var HostAddress : NodeAddress;
  685.                                            var LANDriverInstalled : boolean;
  686.                                            var OptionNumber : byte;
  687.                                            var ConfigurationText : string);
  688. procedure GetListOfQueueJobs(QueueID : longint;
  689.                              var JobCount : integer;
  690.                              var Jobs : JobArray);
  691. procedure GetLockMode(var Mode : LockModes);
  692. procedure GetObjectConnectionNumbers(WhichObject : string47; WhatType : integer;
  693.                                      var ConnectionList : string100);
  694. procedure GetObjectID(WhichObject : string47; WhatType : integer;
  695.                       var ObjectID : longint);
  696. procedure GetObjectName(WhichObjectID : longint;
  697.                         var ObjectName : string47; var ObjectType : integer);
  698. procedure GetObjectsRemainingDiskSpace(WhichObjectID : longint;
  699.                                        var InfoRec : RemainingSpaceRecord);
  700. procedure GetPersonalMessage(var WhoSentIt : byte; var Message : string);
  701. procedure GetPrinterStatus(ServerPrinter :byte;
  702.                            var ServerPrinterStopped,
  703.                                ServerPrinterOffLine  : boolean;
  704.                            var ServerPrinterFormType : byte);
  705. procedure GetSemaphoreInformation(SemaphoreName : string;
  706.                                   var LastSeen,OpenCount : integer;
  707.                                   var Value : shortint;
  708.                                   var NumberRecords : byte;
  709.                                   var Information : SemaphoreInformationRecords);
  710. procedure GetServerLANIOStatistics(var InfoRec : ServerLANIOStatistics);
  711. procedure GetServerMiscInformation(var InfoRec : ServerMiscInformation);
  712. procedure GetSpecificCaptureFlags(Device : LPTNames;
  713.                                   var Flags : PrintFlagInformation);
  714. procedure GetStationAddress(var ThisNodeAddress : NodeAddress);
  715. procedure GetVolumeInformation(VolNumber : byte;
  716.                                var InfoRec : PhysicalVolumeInformation);
  717. procedure GetVolumeInfoWithHandle(DirHandle : integer; var InfoRec : VolumeInformation);
  718. procedure GetVolumeInfoWithNumber(VolNumber : integer; var InfoRec : VolumeInformation);
  719. procedure GetVolumeName(VolumeNumber : byte; var VolumeName : string15);
  720. procedure GetVolumeNumber(VolumeName : string15;
  721.                           var VolumeNumber : byte);
  722. procedure GetWorkstationEnvironment(var EnvironmentInfo : WorkstationEnvironment);
  723. function  IsObjectInSet(WhichObject : string47; WhatType : integer;
  724.                         WhichProperty : string15;
  725.                         MemberName : string47; MemberType : integer) : boolean;
  726. procedure LockFileSet(TimeOutTics : integer);
  727. procedure LockLogicalRecordSet(TimeOutTics : integer);
  728. procedure LockPhysicalRecordSet(Mode : LockDirectives; TimeOutTics : integer);
  729. function  LoggedHasConsolePrivileges : boolean;
  730. procedure LogFile(FileName : string; Mode : LogModes; TimeOutTics : integer);
  731. procedure LogLogicalRecord(RecordName : string99;
  732.                            Mode : LogicalLockDirectives; TimeOutTics : integer);
  733. procedure LogNetworkMessage(Message : string80);
  734. procedure LogPhysicalRecord(FileHandle : word; Mode : LogicalLockDirectives;
  735.                             RecordStartOffset, RecordLength : longint;
  736.                             TimeOutTics : integer);
  737. procedure LoginToFileServer(WhichObject : string47; WhatType : integer;
  738.                             Password : string27);
  739. procedure LogOut;
  740. procedure LogOutFromFileServer(ConnectionID : integer);
  741. function  LPTCaptureActive(var QueuingServerConnectionID : integer) : boolean;
  742. procedure ModifyMaximumRightsMask(Directory : string; DirHandle : byte;
  743.                                   RevokeRights, GrantRights : byte);
  744. function  NumberOfLocalDrives : integer;
  745. procedure OpenBindery;
  746. procedure OpenMessagePipe(DestinationConnections : string100;
  747.                           var InitialPipeStatus : string100);
  748. procedure OpenSemaphore(SemaphoreName : string127; InitialValue : integer;
  749.                         var SemaphoreHandle : longint; var OpenCount : integer);
  750. function  PreferredConnectionID : integer;
  751. function  PrimaryConnectionID : integer;
  752. procedure PurgeAllErasedFiles;
  753. procedure PurgeErasedFiles;
  754. procedure ReadJobQueueEntry(QueueID : longint; JobNumber : integer;
  755.                             var Job : JobEntryRecord);
  756. procedure ReadPropertyValue(WhichObject : string47; WhatType : integer;
  757.                             WhichProperty : string15; SegmentNumber : integer;
  758.                             var Property;
  759.                             var PropertyFlags : byte;
  760.                             var MoreSegments  : boolean);
  761. procedure ReadQueueCurrentStatus(QueueID : longint;
  762.                                  var QueueStatus : byte;
  763.                                  var NumberOfEntries : byte;
  764.                                  var NumberOfServers : byte;
  765.                                  var ServerIDList      : IDList;
  766.                                  var ServerStationList : StationList);
  767. procedure ReadServerCurrentStatus(QueueID,ServerID : longint;
  768.                                   ServerStation : byte;
  769.                                   var ServerStatus : ServerStatusType);
  770. procedure ReleaseFile(FileName : string);
  771. procedure ReleaseFileSet;
  772. procedure ReleaseLogicalRecord(LogicalRecord : string99);
  773. procedure ReleaseLogicalRecordSet;
  774. procedure ReleasePhysicalRecord(FileHandle : word;
  775.                             RecordStartOffset, RecordLength : longint);
  776. procedure ReleasePhysicalRecordSet;
  777. procedure RemoveJobFromQueue(QueueID : longint; JobNumber : integer);
  778. procedure RenameDirectory(Directory : string; DirHandle : byte;
  779.                           NewDirectory : string);
  780. procedure RenameObject(WhichObject : string47; WhatType : integer;
  781.                        NewName : string47);
  782. procedure RestoreEraseFile(VolumeName : string16; DirHandle : byte;
  783.                            var ErasedFilename, RestoredFilename : string);
  784. procedure RestoreServersRights;
  785. procedure ScanDirectoryForTrustees(Directory : string; DirHandle : byte;
  786.                                    var SequenceNumber : byte;
  787.                                    var FoundDirectory : string16;
  788.                                    var OwnerID : longint;
  789.                                    var CreationDate : longint;
  790.                                    var FiveTrustees : TrusteeIDArray;
  791.                                    var FiveRights   : TrusteeRightsArray);
  792. procedure ScanDirectoryInfomation(Directory : string; DirHandle : byte;
  793.                                   var SequenceNumber   : integer;
  794.                                   var FoundDirectory   : string16;
  795.                                   var OwnerID          : longint;
  796.                                   var CreationDate     : longint;
  797.                                   var MaximumRightsMask: byte);
  798. procedure ScanFileInformation(FileName : string; DirHandle : byte;
  799.                               SearchAttribute : byte;
  800.                               var SequenceNumber : integer;
  801.                               var FoundFile : string13;
  802.                               var FileAttributes : byte;
  803.                               var ExtendedAttributes : byte;
  804.                               var FileSize : longint;
  805.                               var OwnerID : longint;
  806.                               var CreationDate : word;
  807.                               var LastAccessDate : word;
  808.                               var LastUpdateDate : longint;
  809.                               var LastArchiveDate : longint);
  810. procedure ScanObject(ScanMask : string47; ScanType : integer;
  811.                      var LastSeen           : longint;
  812.                      var FoundName          : string47;
  813.                      var FoundType          : integer;
  814.                      var FoundID            : longint;
  815.                      var FoundFlag          : byte;
  816.                      var FoundSecurity      : byte;
  817.                      var FoundHasProperties : boolean);
  818. procedure ScanObjectTrusteePaths(WhichVolume   : byte;
  819.                                  WhichObjectID : longint;
  820.                                  var LastSeen  : integer;
  821.                                  var TrusteePath   : string;
  822.                                  var TrusteeRights : byte);
  823. procedure ScanProperty(WhichObject : string47; WhatType : integer;
  824.                        ScanMask : string15;
  825.                        var LastSeen       : longint;
  826.                        var FoundName      : string15;
  827.                        var FoundFlags     : byte;
  828.                        var FoundSecurity  : byte;
  829.                        var FoundHasValue  : boolean;
  830.                        var MoreProperties : boolean);
  831. procedure SendBroadcastMessage(Message : string55; Connections : string100;
  832.                                var ResultCodes : string100);
  833. procedure SendConsoleBroadcast(Message : string55; Connections : string100);
  834. procedure SendPersonalMessage(Message : string126; ConnectionList : string100;
  835.                               var ResultCodes : string100);
  836. procedure ServiceQueueJob(QueueID : longint; TargetServiceType : integer;
  837.                           var Job : JobEntryRecord);
  838. procedure SetBannerUserName(BannerName : BannerArray);
  839. procedure SetBroadcastMode(NewMode : BroadcastModes);
  840. procedure SetCapturePrintJob(PrintQueueJobNumber : integer;
  841.                              Device : LPTNames);
  842. procedure SetCapturePrintQueue(PrintQID : longint; Device : LPTNames);
  843. procedure SetDefaultCaptureFlags(var CaptureInfo : CaptureFlags);
  844. procedure SetDefaultLocalPrinter(Device : LPTNames);
  845. procedure SetDirectoryHandle(SourceDirectory : string;
  846.                              SourceDirHandle, TargetDirHandle : byte);
  847. procedure SetDirectoryInformation(Directory : string; DirHandle : byte;
  848.                                   NewOwner : longint; NewCreationDate : longint;
  849.                                   MaximumRightsMask : byte);
  850. procedure SetEndOfJobStatus(Mode : EndOfJobStatus);
  851. procedure SetErrorMode(Mode : ErrorModes);
  852. procedure SetExtendedFileAttributes(Filename : string; ExtendedAttributes : byte);
  853. procedure SetFileInformation(Filename : string; DirHandle : byte;
  854.                              SearchAttributes : byte;
  855.                              FileAttributes,ExtendedAttributes : byte;
  856.                              OwnerID : longint;
  857.                              CreationDate,LastAccessDate : integer;
  858.                              LastUpdateDate,LastArchiveDate : longint);
  859. procedure SetFileServerDateAndTime(NewTime : ServerTimeRecord);
  860. procedure SetLockMode(NewMode : LockModes);
  861. procedure SetPreferredConnectionID(PreferredConnection : byte);
  862. procedure SetPrimaryConnectionID(PrimaryConnection : byte);
  863. procedure SetQueueCurrentStatus(QueueID : longint; QueueStatus : byte);
  864. procedure SetServerCurrentStatus(QueueID : longint;
  865.                                  var ServerStatus : ServerStatusType);
  866. procedure SetSpecificPrintJobFlags(Device : LPTNames;
  867.                                    var CaptureInfo : CaptureFlags);
  868. procedure SignalSemphore(SemaphoreHandle : longint);
  869. procedure SpecifyCaptureFile(Filename : string; DirHandle : byte);
  870. procedure StartLPTCapture;
  871. procedure StartSpecificCapture(Device : LPTNames);
  872. procedure SubmitAccountCharge(WhichObject : string47;
  873.                               WhatType, ServiceType : integer;
  874.                               Charge, CancelHoldAmount : longint;
  875.                               CommentType : CommentTypes; Comment : string);
  876. procedure SubmitAccountHold(WhichObject : string47; WhatType : integer;
  877.                             AmountToReserve : longint);
  878. procedure SubmitAccountNote(WhichObject : string47; WhatType : integer;
  879.                             ServiceType : integer;
  880.                             CommentType : CommentTypes; Comment : string);
  881. procedure TTSAbortTransaction;
  882. procedure TTSBeginTransaction;
  883. procedure TTSEndTransaction(var ReferenceNumber : longint);
  884. procedure TTSGetApplicationTresholds(var LogicalLockThreshold,
  885.                                          PhysicalLockThreshold : byte);
  886. procedure TTSGetWorkstationThresholds(var LogicalLockThreshold,
  887.                                           PhysicalLockThreshold : byte);
  888. function  TTSIsAvailable : boolean;
  889. procedure TTSSetApplicationTresholds(LogicalLockThreshold,
  890.                                      PhysicalLockThreshold : byte);
  891. procedure TTSSetWorkstationThresholds(LogicalLockThreshold,
  892.                                       PhysicalLockThreshold : byte);
  893. procedure TTSTransactionStatus(TransactionReferenceNumber : longint);
  894. procedure VerifyObjectPassword(WhichObject : string47; WhatType : integer;
  895.                                Password : string127);
  896. procedure WaitOnSemaphore(SemaphoreHandle : longint; TimeoutLimit : integer);
  897. procedure WritePropertyValue(WhichObject : string47; WhatType : integer;
  898.                              WhichProperty : string15; var PropertyValue;
  899.                              SegmentNumber : integer; MoreSegments : boolean);
  900.